%{
#include<set>
#include<iostream>
using namespace std;
int Count_Words=0;
set<double>table;
long int num=0;
int flag=0;
%}
number [0-9]
stuID {number}{9}
DIYID ^{stuID}
name NAME$
digits [0-9]+
optional_fraction (\.{digits})?
numbers {digits}{optional_fraction}
%%
{DIYID} {printf("201492394");}
{name} {printf("HDY");}
{numbers} {
int i;
int j;
char* p=yytext;
double prinnum;
double frac;
for(i=0,num=0,flag=0;i<yyleng;i++)
            {  if(p[i]!='.')
               {
num=num*10+p[i]-'0';
}
               else break;
              }
            j=i;
            i++;
            for(;i<yyleng;i++)
            { 
             flag=1;
              num=num*10+p[i]-'0';
             }
frac=num;

             if(!flag)
             {
  
                 table.insert(num);
                 Count_Words++;
               }
              else
              {
                for(;j<i-1;j++)
               {   frac/=10;

}
               }
            prinnum=frac*2+201492394;
            printf("%.0f",prinnum);
            }
%%
main()
{
yylex();
printf("%d\t%d\n",Count_Words,table.size());
}
int yywrap()
{
return 1;
}
           

                                                  